1. Field of the Invention
This invention relates to improvements in a compiler that is used to compile the GDMO language.
2. Description of the Related Art
GDMO (Guidelines for the Definition of Managed Objects) is a known object-oriented design specification language in which a designer uses multiple object class referencing to specify and structure the managed object classes that are being defined by the designer.
The following nine GDMO template types are allowed; Managed Object Class, Package, Parameter, Name Binding, Attribute, Attribute Group, Behavior, Action, and Notification. The GDMO language specifies which of these template types may contain reference to what other template types.
Object classes are defined using these nine different GDMO template types that are allowed by the GDMO language. A Managed Object Class template defines the class by specifying features such as the name of the class, and what other classes this class references. In this manner, a complex class hierarchy of class inheritance can be defined by the designer.
The GDMO language specifies several rules that regulate the allowable structure of such a hierarchy. These rules require that all classes, with the exception of a special class called "top", may reference all other classes, that all classes can inherit either directly of indirectly from "top", and that no cycles can be present in the inheritance hierarchy. For example, if two classes A and B are defined such that A inherits from B, and B inherits from A, a cycle is defined and the GDMO language rule against cycles is violated.
The present invention operates to verify that no GDMO template references any other template for which a definition is not provided in the rules of the GDMO language. The invention then linearizes, or orders, a GDMO template input list by building an output list of the templates using the unique process of the invention.
The present invention operates to detect errors in GDMO definitions at compile time, rather than at execution time as in prior arrangements. This feature of the invention simplifies execution time error handling significantly. Having the templates linearized in the output list, as is provided by the invention, provides significant execution time simplification to all programs that must load and process the complied GDMO definitions contained in the compiled output file.